using System;

namespace CCFlow.NetCore.DataUser.SocketImpl
{
    class Utils
    {
        // 生成随机Hex颜色的函数
        public static string GetRandomHexColor()
        {
            Random random = new Random();
            int red, green, blue;

            // 保证生成的颜色不太淡，避免RGB值过高
            do
            {
                // 随机生成RGB值（0-255）
                red = random.Next(0, 256);
                green = random.Next(0, 256);
                blue = random.Next(0, 256);
            } while (IsTooLight(red, green, blue)); // 如果颜色太淡，重新生成

            // 将RGB值转化为Hex颜色值
            return $"#{red:X2}{green:X2}{blue:X2}";
        }

        // 判断颜色是否过于淡
        public static bool IsTooLight(int red, int green, int blue)
        {
            // 计算颜色的亮度：使用加权公式
            double brightness = 0.2126 * red + 0.7152 * green + 0.0722 * blue;
            return brightness > 200; // 如果亮度大于200，认为颜色太淡
        }
    }
}